#ifndef CAMERA_H
#define CAMERA_H

class Camera
{
public:
	Camera();
	void calculateLookAt();
	void calculateTranslation();
	void calculateLeftVector();
	void calculateUp();
	void calculateVectors();
	void changeFocus(double X, double Y, double Z, double offset);
	bool getLockOn();

	void increaseOffset();

	void decreaseOffset();
	
	void resetOffset();

	double rotationX; //rotation on the x-axis
	double rotationY; //rotation on the y-axis
	/*
	double getTranslation();
	double getUp();
	double getLookAt();
	*/
	double lookAt[3];
	double translation[3];
	double leftVector[3];
	double up[3];
	double lookAtPoint[3];

private:
	bool lockOn;
	double radiusOffset;
	double radiusOffsetNew;

};

#endif